package com.atguigu3.common_algorithm.exer3;

/**
 * ClassName: arrary_test3
 * Description:
 *使用二维数组打印一个 10 行杨辉三角。
 *    提示：
 *    1. 第一行有 1 个元素, 第 n 行有 n 个元素
 *    2. 每一行的第一个元素和最后一个元素都是 1
 *    3. 从第三行开始, 对于非第一个元素和最后一个元素的元素。即：
 *    yanghui[i][j] = yanghui[i-1][j-1] + yanghui[i-1][j];
 * @Author liu
 * @Create 2024/8/11 17:14
 * @Version 1.0
 */

public class arrary_test3 {
    public static void main(String[] args) {
        int[][] yanghui =new int [10][];

        // 遍历数组以初始化杨辉三角的每一行
        for (int i = 0; i < yanghui.length; i++) {
            // 每一行包含的元素数量等于行索引 i 加一
            // 例如：第一行（i=0）有 1 个元素，第二行（i=1）有 2 个元素，以此类推
            yanghui[i] = new int[i + 1];
            // 第一个元素和最后一个元素都是 1
            yanghui[i][0] = 1;
            yanghui[i][i] = 1;
            //从第三行开始, 对于非第一个元素和最后一个元素的元素之和
            for (int j = 1; j <yanghui[i].length-1 ; j++) {
                yanghui[i][j] = yanghui[i-1][j-1] + yanghui[i-1][j];
            }
        }
        //遍历数组，打印数组
        for (int i = 0; i <yanghui.length ; i++) {
            for(int j =0;j<yanghui[i].length;j++){
                System.out.print(yanghui[i][j]+" ");
            }
            System.out.println();
        }

    }
}
